Scheduling downloads based on metadata in a client-server topology

ABSTRACT

A method, a computer program product, and a computer system for scheduling downloads based on metadata in a client-server topology. A server receives from a client application a request for scheduling a download of a file, wherein the request for scheduling the download of the file comprises a requirement of a time period for downloading the file. The server fetches information from one or more metadata sources. The server determines an optimal time for downloading the file, based on the requirement of the time period and information from one or more metadata sources. The server sends a response with the optimal time and information for downloading the file. The server receives from the client a request for downloading the file at the optimal time. The server serves, at the optimal time, the file to the client application.

BACKGROUND

The present invention relates generally to downloading files fromservers, and more particularly to scheduling downloads based on metadatain a client-server topology.

Currently, there is no mechanism for scheduling future downloads basedon a combination of client requirements and costs. A download scheduleis either defined wholly by a client or a server, and there is nomediation that occurs between the parties; this results in less optimalscheduling downloads. However, there are a range of possible optionsthat fulfil needs of the client but have different cost/benefit ratiosto the service provider.

Download schedulers are used in peer-to-peer (P2P) file sharing, whichis the distribution and sharing of digital media using peer-to-peer(P2P) networking technology. There exist methodologies for schedulingdownloads in peer-to-peer topologies; however, the methodologies are nottranslatable to a client-server architecture. Forward caching ofresources is a different method to reduce server load in times of hightraffic. Forward caching of resources reduces server load by offloadingas opposed to smoothing the usage across a wider time period, and it ismore geared towards immediacy and accidental denial of service asopposed to lowering the strain across servers over protracted periods oftime.

SUMMARY

A method for scheduling downloads based on metadata in a client-servertopology is provided. The method includes receiving from a clientapplication, by a server, a request for scheduling a download of a file,wherein the request for scheduling the download of the file comprises arequirement of a time period for downloading the file. The methodfurther includes fetching, by the server, information from one or moremetadata sources, wherein the information is relevant to the request forscheduling the download of the file. The method further includesdetermining, by the server, an optimal time for downloading the file,based on the requirement of the time period and information from one ormore metadata sources. The method further includes sending to the clientapplication, by the server, a response with the optimal time andinformation for downloading the file, wherein the information fordownloading the file comprises a token for authentication, wherein thetoken is used to provide mapping between the request for scheduling thedownload of the file and the request for downloading the file at theoptimal time. The method further includes receiving from the client, bythe server, a request for downloading the file at the optimal time. Themethod further includes receiving from the client application, by theserver, the token. The method further includes serving, by the server,at the optimal time, the file to the client application. The methodfurther includes rescheduling, by the client application, the downloadof the file, in response to the requirement of the time period beingchanged after the client application has sent to the server the requestfor downloading the file at the optimal time. The method furtherincludes canceling, by the client application, the download of the file,in response to the download of the file not being needed after theclient application has sent to the server the request for downloadingthe file at the optimal time. The information from one or more metadataresources comprises one or more of historical server load statistics,Internet service provider data caps, peak and off-peak times for clientnetwork traffic, costs to the client, routing, and bandwidth.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram illustrating a system for scheduling downloads basedon metadata in a client-server topology, in accordance with oneembodiment of the present invention.

FIG. 2 is a flowchart showing operational steps for scheduling downloadsbased on metadata in a client-server topology, in accordance with oneembodiment of the present invention.

FIG. 3 is a diagram illustrating components of a computer device of aclient or a server for scheduling downloads based on metadata in aclient-server topology, in accordance with one embodiment of the presentinvention.

DETAILED DESCRIPTION

Embodiments of the present invention use metadata sources to makeinformed decisions and present cost savings to clients whilst servingthe needs of the business and providing content that clients need. Forexample, scheduling downloads uses metadata about peak/off-peak timesfor client network traffic; in a case that the data is not neededimmediately (e.g. pre-loading a video), a download is scheduled at thetime when the download has minimal cost to the client. There are noconstraints on what metadata can be used to make the schedulingdecisions. The metadata is directly from the client and from metadatasources or metadata stores. What metadata will be used is defined by thebusiness. The embodiments of the present invention can be implemented indifferent systems, support programs, and runtime environments; forexample, a most likely common solution is REST (Representational StateTransfer) over HTTP (Hypertext Transfer Protocol) based API (ApplicationProgram Interface).

FIG. 1 is a diagram illustrating system 100 for scheduling downloadsbased on metadata in a client-server topology, in accordance with oneembodiment of the present invention. System 100 is a client-servertopology, comprising client application 101 and server 110. Server 110comprises download server 102, scheduler 103, file server 104, andmetadata sources 105.

Referring to FIG. 1, as denoted by

client application 101 sends to download server 102 a request forscheduling a download. The request for scheduling the download specifiesa file that a client wants to download. The request for scheduling thedownload comprises a requirement of a time period for downloading thefile and a latest time point at which the file should be downloaded. Therequest for scheduling the download may include other information toinform server 110 such that server 110 can make a decision more in linewith the client wishes. The requirement of the time period fordownloading the file and the other information included in the requestfor scheduling the download are metadata from the client side and willbe used for making decision by server 110.

Referring to FIG. 1, as denoted by

in response to receiving the request for scheduling the download fromclient application 101, download server 102 fetches information (ormetadata) from metadata sources 105 (or one or more metadata stores).The information from metadata sources 105 comprises historical serverload statistics, ISP (Internet service provider) data caps,peak/off-peak times for client network traffic, costs to the client,routing, bandwidth, and other needed information. For the currentrequest, download server 102 fetches from metadata sources 105information (or metadata) which is relevant to the current request.

Referring to FIG. 1, as denoted by

download server 102 forwards to scheduler 103 the request for schedulingthe download of the file and the fetched information (or metadata). Whenthe request is forwarded, all information included in the request, suchas the time period for downloading the file and the latest time point atwhich the file should be downloaded, is forwarded to scheduler 103 bydownload server 102.

Scheduler 103 determines an optimal time for downloading the file, basedon the information included in the request for scheduling the downloadof the file and the information (or metadata) fetched from metadatasources 105. Referring to FIG. 1, as denoted by

in response to determining the optimal time for downloading the file,scheduler 103 sends to download server 102 the optimal time fordownloading the file.

Referring to FIG. 1, as denoted by

download server 102 sends to client application 101 a response with theoptimal time for downloading the file. In the response to clientapplication 101, download server 102 provides client application 101with information the client needs or has been requested. The informationincludes the location of file server 104 and a token that authenticatesthe client for downloading the file at the optimal time.

Referring to FIG. 1, as denoted by

in response to receiving the response from download server 102, clientapplication 101 sends a request for downloading the file at the optimaltime and the token for authentication if required. Thus, downloading thefile at the optimal time is initiated by client application 101. Afterthe initiation, if the requirement of the time period for downloadingthe file is changed, client application 101 may reschedule fordownloading the file. After the initiation, if downloading the file isnot needed anymore, client application 101 may cancel downloading thefile at the optimal time. As denoted

file server 104 serves the file to client application 101 at the optimaltime.

The token for authentication is used to provide a mapping between theclient request for scheduling the download of the file and the requestfor downloading the file at the optimal time. Thus, server 110 makessure the client makes the download request in line with what has beenagreed.

FIG. 2 is flowchart 200 showing operational steps for schedulingdownloads based on metadata in a client-server topology, in accordancewith one embodiment of the present invention. At step 201, clientapplication 101 sends to download server 102 a request for scheduling adownload of a file. The request specifies the file that the client wantsto downloaded. The request comprises a requirement of a time period fordownloading the file. The time period sets a time point at which thefile should be downloaded. The request also includes other informationfor server 110 to make a decision more in line with the client wishes.The requirement of the time period for downloading the file and theother information included in the request for scheduling the download ofthe file are metadata from the client side.

At step 202, in response to receiving from client application 101 therequest for scheduling the download of the file, download server 102fetches information (or metadata) from metadata sources 105. Metadatasources 105 store information including historical server loadstatistics, ISP (Internet service provider) data caps, peak/off-peaktimes for client network traffic, costs to the client, routing,bandwidth, and other needed information. Download server 102 fetchessome of the information (or metadata) specifically relevant to thecurrent request.

At step 203, download server 102 forwards to scheduler 103 the requestfor scheduling the download of the file and the fetched information (ormetadata) at step 202. The information included in the request forscheduling the download of the file, such as the time period fordownloading the file and the latest time point at which the file shouldbe downloaded, is forwarded to scheduler 103.

At step 204, scheduler 103 determines an optimal time for downloadingthe file, based on the information (e.g., requirement of the time periodfor downloading the file) included in the request sent at step 201 byclient application 101 and the information (or metadata) fetched frommetadata sources 105 at step 202. In response to determining the optimaltime for downloading the file, at step 205, scheduler 103 sends todownload server 102 the optimal time for downloading the file.

In response to receiving the optimal time determined by scheduler 103,at step 206, download server 102 sends client application 101 a responsewith the optimal time for downloading the file and information fordownloading the file. The information for downloading the file includes,for example, a location of file server 104 and a token forauthentication. The token for authentication is used to provide amapping between the client request for scheduling the download of thefile and a request for downloading the file at the optimal time. Therequest for downloading the file at the optimal time will be made byclient application 101 at the next step (step 207). Thus, server 110makes sure the client makes the download request in line with what hasbeen agreed.

In response to receiving a response from download server 102 at step206, client application 101, at step 207, sends download server 102 arequest for downloading the file at the optimal time and the token forthe authentication. Thus, downloading the file at the optimal time isinitiated by client application 101. If the requirement of the timeperiod for downloading the file is changed, client application 101 mayreschedule for downloading the file. If downloading the file is notneeded anymore, client application 101 may cancel downloading the fileat the optimal time.

If client application 101 does not reschedule or cancel the initiateddownload of the file at the optimal time, at step 208, file server 104serves the file to client application 101 at the optimal time which isdetermined at step 204.

FIG. 3 is a diagram illustrating components of computer device 300hosting client application 101 or server 110 for scheduling downloadsbased on metadata in a client-server topology, in accordance with oneembodiment of the present invention. It should be appreciated that FIG.3 provides only an illustration of one implementation and does not implyany limitations with regard to the environment in which differentembodiments may be implemented. The computer device may be anyelectronic device or computing system capable of receiving input from auser, executing computer program instructions, and communicating withanother electronic device or computing system via a network.

Referring to FIG. 3, computer device 300 includes processor(s) 320,memory 310, and tangible storage device(s) 330. In FIG. 3,communications among the above-mentioned components of computer device300 are denoted by numeral 390. Memory 310 includes ROM(s) (Read OnlyMemory) 311, RAM(s) (Random Access Memory) 313, and cache(s) 315. One ormore operating systems 331 and one or more computer programs 333 resideon one or more computer readable tangible storage device(s) 330. On aclient computer, client application 101 resides on one or more computerreadable tangible storage device(s) 330. On a server computer, downloadserver 102, scheduler 103, file server 104, and metadata sources 105reside one or more computer readable tangible storage device(s) 330.Alternatively, download server 102, scheduler 103, file server 104, ormetadata sources 105 may reside on a separate computer device connectedto the server computer via a network. Computer device 300 furtherincludes I/O interface(s) 350. I/O interface(s) 350 allows for input andoutput of data with external device(s) 360 that may be connected tocomputer device 300. Computer device 300 further includes networkinterface(s) 340 for communications between computer device 300 and acomputer network.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device, such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network(LAN), a wide area network (WAN), and/or a wireless network. The networkmay comprise copper transmission cables, optical transmission fibers,wireless transmission, routers, firewalls, switches, gateway computersand/or edge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++, and conventionalprocedural programming languages, such as the “C” programming language,or similar programming languages. The computer readable programinstructions may execute entirely on the user's computer, partly on theuser's computer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer, or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider). In some embodiments,electronic circuitry including, for example, programmable logiccircuitry, field-programmable gate arrays (FPGA), or programmable logicarrays (PLA) may execute the computer readable program instructions byutilizing state information of the computer readable programinstructions to personalize the electronic circuitry in order to performaspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture, including instructions which implement aspectsof the function/act specified in the flowchart and/or block diagramblock or blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus, or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

What is claimed is:
 1. A method for scheduling downloads based onmetadata in a client-server topology, the method comprising: receivingfrom a client application, by a server, a request for scheduling adownload of a file, wherein the request for scheduling the download ofthe file comprises a requirement of a time period for downloading thefile; fetching, by the server, information from one or more metadatasources, wherein the information is relevant to the request forscheduling the download of the file; determining, by the server, anoptimal time for downloading the file, based on the requirement of thetime period and information from one or more metadata sources; sendingto the client application, by the server, a response with the optimaltime and information for downloading the file, wherein the informationfor downloading the file comprises a token for authentication, whereinthe token is used to provide mapping between the request for schedulingthe download of the file and the request for downloading the file at theoptimal time; receiving from the client application, by the server, arequest for downloading the file at the optimal time; receiving from theclient application, by the server, the token; serving, by the server, atthe optimal time, the file to the client application; rescheduling, bythe client application, the download of the file, in response to therequirement of the time period being changed after the clientapplication has sent to the server the request for downloading the fileat the optimal time; canceling, by the client application, the downloadof the file, in response to the download of the file not being neededafter the client application has sent to the server the request fordownloading the file at the optimal time; and wherein the informationfrom one or more metadata resources comprises one or more of historicalserver load statistics, Internet service provider data caps, peak andoff-peak times for client network traffic, costs to the client, routing,and bandwidth.